Skip to content

feat: add support for JSONC in user theme files and add test coverage for theme loading functionality (resolves #4927)#5134

Open
ariane-emory wants to merge 177 commits intoanomalyco:devfrom
ariane-emory:feat/jsonc-user-themes
Open

feat: add support for JSONC in user theme files and add test coverage for theme loading functionality (resolves #4927)#5134
ariane-emory wants to merge 177 commits intoanomalyco:devfrom
ariane-emory:feat/jsonc-user-themes

Conversation

@ariane-emory
Copy link
Copy Markdown
Contributor

@ariane-emory ariane-emory commented Dec 5, 2025

What does this PR do?

Resolves #4927.

This PR improves consistency and adherence to the principle of least surprise by giving users' custom theme files the same treatment as opencode.json/opencode.jsonc and permitting them to contain either plain JSON or JSONC with the option of trailing commas. Similarly to how opencode.json is handled, user themes are now parsed as JSONC regardless of the physical file extension.

In addition to improving adherence to the principle of least surprise, this improves UX when working on adjusting one's custom theme files, as it can be very convenient to be able to comment lines in a theme file in in and out while adjusting its aesthetics.

In addition, this PR adds tests for the theme loading functionality, which had no test coverage prior to this PR.

actions-user and others added 20 commits December 1, 2025 11:33
@ariane-emory ariane-emory marked this pull request as ready for review December 5, 2025 20:30
@ariane-emory ariane-emory deleted the feat/jsonc-user-themes branch December 6, 2025 05:47
@ariane-emory ariane-emory restored the feat/jsonc-user-themes branch December 6, 2025 06:36
@ariane-emory ariane-emory reopened this Dec 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE]: JSONC support for user themes.

2 participants